package ch.cyberduck.binding.application;

/*
 * Copyright (c) 2002-2009 David Kocher. All rights reserved.
 *
 * http://cyberduck.ch/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * Bug fixes, suggestions and comments should be sent to:
 * dkocher@cyberduck.ch
 */

import ch.cyberduck.binding.foundation.NSArray;
import ch.cyberduck.binding.foundation.NSDictionary;
import ch.cyberduck.binding.foundation.NSObject;

import org.rococoa.ObjCClass;
import org.rococoa.cocoa.CGFloat;
import org.rococoa.cocoa.foundation.NSRect;

/**
 * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
 * a tool written by <a href="http://ochafik.free.fr/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
 * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a>, <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.

 */
public abstract class NSScreen extends NSObject {
    private static final _Class CLASS = org.rococoa.Rococoa.createClass("NSScreen", _Class.class);

    public interface _Class extends ObjCClass {
        /**
         * Original signature : <code>+(NSArray*)screens</code><br>
         * All screens; first one is "zero" screen<br>
         * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:235</i>
         */
        NSArray screens();

        /**
         * Original signature : <code>+(NSScreen*)mainScreen</code><br>
         * Screen with key window<br>
         * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:236</i>
         */
        NSScreen mainScreen();

        /**
         * Original signature : <code>+(NSScreen*)deepestScreen</code><br>
         * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:237</i>
         */
        NSScreen deepestScreen();
    }

    /**
     * Original signature : <code>+(NSArray*)screens</code><br>
     * All screens; first one is "zero" screen<br>
     * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:235</i>
     */
    public static NSArray screens() {
        return CLASS.screens();
    }

    /**
     * Original signature : <code>+(NSScreen*)mainScreen</code><br>
     * Screen with key window<br>
     * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:236</i>
     */
    public static NSScreen mainScreen() {
        return CLASS.mainScreen();
    }

    /**
     * Original signature : <code>+(NSScreen*)deepestScreen</code><br>
     * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:237</i>
     */
    public static NSScreen deepestScreen() {
        return CLASS.deepestScreen();
    }

    /**
     * Original signature : <code>-(NSWindowDepth)depth</code><br>
     * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:239</i>
     */
    public abstract int depth();

    /**
     * Original signature : <code>-(NSRect)frame</code><br>
     * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:240</i>
     */
    public abstract NSRect frame();

    /**
     * Original signature : <code>-(NSRect)visibleFrame</code><br>
     * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:241</i>
     */
    public abstract NSRect visibleFrame();

    /**
     * Original signature : <code>-(NSDictionary*)deviceDescription</code><br>
     * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:242</i>
     */
    public abstract NSDictionary deviceDescription();

    /**
     * Returns scale factor applied by default to windows created on this screen<br>
     * Original signature : <code>-(CGFloat)userSpaceScaleFactor</code><br>
     * <i>native declaration : /System/Library/Frameworks/AppKit.framework/Headers/NSGraphics.h:249</i>
     */
    public abstract CGFloat userSpaceScaleFactor();
}
